package com.ruoyi.system.domain;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 优惠券对象 coupons
 * 
 * @author ruoyi
 * @date 2024-03-22
 */
@Data
public class Coupons extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 优惠券标题 */
    @Excel(name = "优惠券标题")
    private String title;

    /** 优惠券的描述 */
    private String description;

    /** 101-普通满减 102-循环满减券 103-满折券 104-免单 */
    @Excel(name = "101-普通满减 102-循环满减券 103-满折券 104-免单")
    private Long type;
    private String typeDesc;

    /** 状态 -1-废弃 0-过期 1-正常 */
    @Excel(name = "状态 -1-废弃 0-过期 1-正常")
    private Long status;
    private String statusDesc;

    /** 门槛 */
    @Excel(name = "门槛")
    private Long doorSill;

    /** 操作值 满减金额/折扣1-99 */
    @Excel(name = "操作值 满减金额/折扣1-99")
    private Long reduce;

    /** 最多优惠(针对打折类) 0-不限制 */
    private Long upperLimit;

    /** 商品使用规则 json 格式 */
    private String goodsScope;

    /** 发放张数。总数量 -1 不限 */
    private Long num;

    /** 优惠券总数 */
    private Long countNum;

    /** 方式 1-手动发放 2-自动发放 3-自主领取 */
    @Excel(name = "方式 1-手动发放 2-自动发放 3-自主领取")
    private Long auto;

    /** 跳转地址 */
    private String jumpTo;

    /** 每次领取数量/天 */
    private Long pullOnce;

    /** 最多领取数量 */
    @Excel(name = "最多领取数量")
    private Long pullMax;

    /** 开始时间 0 取end_time长度时间票 */
    @Excel(name = "开始时间 0 取end_time长度时间票")
    private Long startTime;

    /** 结束时间 开始时间为0时则为票的有效长 */
    @Excel(name = "结束时间 开始时间为0时则为票的有效长")
    private Long endTime;

    /** 开始发放时间 */
    private Long startSendTime;

    /** 结束发放时间, 如果为0,只需大于开始时间即通过 */
    private Long endSendTime;

    /** 优惠券权重排序 从大到小 */
    private Long weight;

    /** 领取方式 1-直接发放 2-用户手动领取 */
    @Excel(name = "领取方式 1-直接发放 2-用户手动领取")
    private Long receiveWay;

    /** 发放条件 */
    private String sendScope;

    /** 优惠券互斥类型 */
    private String mutex;

    /** 互斥规则 json格式 */
    private String mutexScope;

    /** 用户类型 */
    private String userType;

    /** 展示位置 */
    private String showPosition;

    /** 优惠券使用规则 */
    private String couponRule;
    
}
